package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 采购单对象 purchase
 * 
 * @author ruoyi
 * @date 2021-05-06
 */
public class Purchase extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 采购单单号 */
    private Long id;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String proName;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String proNumber;

    /** 交期要求 */
    @Excel(name = "交期要求")
    private String deliveryReq;

    /** 请购日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "请购日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date requisitionDate;

    /** 付款时间 */
    @Excel(name = "付款时间")
    private String payTime;

    /** 已付款 */
    @Excel(name = "已付款")
    private Double paid;

    /** 尾款 */
    @Excel(name = "尾款")
    private Double aftPaid;

    /** 尾款时间 */
    @Excel(name = "尾款时间")
    private String aftPaidTime;

    /** 预付款 */
    @Excel(name = "预付款")
    private Double bePaid;

    /** 预付款时间 */
    @Excel(name = "预付款时间")
    private String bePaidTime;

    /** 运费 */
    @Excel(name = "运费")
    private Double shipping;

    /** 发票号 */
    @Excel(name = "发票号")
    private String receiptNumber;

    /** 付款单位 */
    @Excel(name = "付款单位")
    private String paymentUnit;

    /** 0/1是否已经生成入库单 */
    @Excel(name = "0/1是否已经生成入库单")
    private Long stateIn;

    /** 0/1是否已经生成出库单 */
    @Excel(name = "0/1是否已经生成出库单")
    private Long stateOut;


    /** 全款金额 */
    @Excel(name = "全款金额")
    private Double fullAmount;

    /** 请购单外键 */
    @Excel(name = "请购单外键")
    private Long  reqId;

    /** 支付比列 */
    @Excel(name = "支付比列")
    private Double  paidPercent;



   //材料数组
    private List<PurchaseRecord> purchaseRecords;


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }

    public String getProNumber() {
        return proNumber;
    }

    public void setProNumber(String proNumber) {
        this.proNumber = proNumber;
    }

    public String getDeliveryReq() {
        return deliveryReq;
    }

    public void setDeliveryReq(String deliveryReq) {
        this.deliveryReq = deliveryReq;
    }

    public Date getRequisitionDate() {
        return requisitionDate;
    }

    public void setRequisitionDate(Date requisitionDate) {
        this.requisitionDate = requisitionDate;
    }

    public String getPayTime() {
        return payTime;
    }

    public void setPayTime(String payTime) {
        this.payTime = payTime;
    }

    public Double getPaid() {
        return paid;
    }

    public void setPaid(Double paid) {
        this.paid = paid;
    }

    public Double getAftPaid() {
        return aftPaid;
    }

    public void setAftPaid(Double aftPaid) {
        this.aftPaid = aftPaid;
    }

    public String getAftPaidTime() {
        return aftPaidTime;
    }

    public void setAftPaidTime(String aftPaidTime) {
        this.aftPaidTime = aftPaidTime;
    }

    public Double getBePaid() {
        return bePaid;
    }

    public void setBePaid(Double bePaid) {
        this.bePaid = bePaid;
    }

    public String getBePaidTime() {
        return bePaidTime;
    }

    public void setBePaidTime(String bePaidTime) {
        this.bePaidTime = bePaidTime;
    }

    public Double getShipping() {
        return shipping;
    }

    public void setShipping(Double shipping) {
        this.shipping = shipping;
    }

    public String getReceiptNumber() {
        return receiptNumber;
    }

    public void setReceiptNumber(String receiptNumber) {
        this.receiptNumber = receiptNumber;
    }

    public String getPaymentUnit() {
        return paymentUnit;
    }

    public void setPaymentUnit(String paymentUnit) {
        this.paymentUnit = paymentUnit;
    }

    public Long getStateIn() {
        return stateIn;
    }

    public void setStateIn(Long stateIn) {
        this.stateIn = stateIn;
    }

    public Long getStateOut() {
        return stateOut;
    }

    public void setStateOut(Long stateOut) {
        this.stateOut = stateOut;
    }

    public Double getFullAmount() {
        return fullAmount;
    }

    public void setFullAmount(Double fullAmount) {
        this.fullAmount = fullAmount;
    }

    public Long getReqId() {
        return reqId;
    }

    public void setReqId(Long reqId) {
        this.reqId = reqId;
    }

    public List<PurchaseRecord> getPurchaseRecords() {
        return purchaseRecords;
    }

    public void setPurchaseRecords(List<PurchaseRecord> purchaseRecords) {
        this.purchaseRecords = purchaseRecords;
    }

    public Double getPaidPercent() {
        return paidPercent;
    }

    public void setPaidPercent(Double paidPercent) {
        this.paidPercent = paidPercent;
    }

    @Override
    public String toString() {
        return "Purchase{" +
                "id=" + id +
                ", proName='" + proName + '\'' +
                ", proNumber='" + proNumber + '\'' +
                ", deliveryReq='" + deliveryReq + '\'' +
                ", requisitionDate=" + requisitionDate +
                ", payTime='" + payTime + '\'' +
                ", paid=" + paid +
                ", aftPaid=" + aftPaid +
                ", aftPaidTime='" + aftPaidTime + '\'' +
                ", bePaid=" + bePaid +
                ", bePaidTime='" + bePaidTime + '\'' +
                ", shipping=" + shipping +
                ", receiptNumber='" + receiptNumber + '\'' +
                ", paymentUnit='" + paymentUnit + '\'' +
                ", stateIn=" + stateIn +
                ", stateOut=" + stateOut +
                ", fullAmount=" + fullAmount +
                ", reqId=" + reqId +
                ", paidPercent=" + paidPercent +
                ", purchaseRecords=" + purchaseRecords +
                '}';
    }
}
